System and method for facilitating queries via request-prediction-based temporary storage of query results

ABSTRACT

In certain embodiments, queries may be facilitated via request-prediction-based temporary storage of query results. In some embodiments, a request for query results may be predicted, and, in response, a subset of results may be obtained. The subset of results may be a portion of a set of results that would have been obtained to respond to the request had the request been obtained from a client device. The subset of results may be caused to be stored in temporary data storage, and no storage of other subsets of the set of results in the temporary data storage occurs from the request prediction. The request may be obtained from the client device subsequent to the storage. Based on the obtained request, the subset of results may be obtained from the temporary data storage, and the other subsets of the set of results may be obtained via at least another data source.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No.15/855,818, filed on Dec. 27, 2017 and entitled “SYSTEM AND METHOD FORREDUCING DATA STREAMING AND/OR VISUALIZATION NETWORK RESOURCE USAGE,”which is a divisional of U.S. patent application Ser. No. 15/382,534(now U.S. Pat. No. 9,942,312), filed on Dec. 16, 2016 (issued on Apr.10, 2018) and entitled “SYSTEM AND METHOD FOR FACILITATING LOADREDUCTION AT A LANDING ZONE,” which both are related to the followingapplications, filed on Dec. 16, 2016: (1) U.S. patent application Ser.No. 15/382,510, (2) U.S. patent application Ser. No. 15/382,249, (3)U.S. patent application Ser. No. 15/382,513, and (4) U.S. patentapplication Ser. No. 15/382,522, each of which is hereby incorporated byreference herein in its entirety.

FIELD OF THE INVENTION

The invention relates to facilitating queries viarequest-prediction-based temporary storage of query results.

BACKGROUND OF THE INVENTION

In recent years, data visualization has become an increasingly importantpart of data analysis. Visualization, for example, enables companies andother organizations to meaningfully present raw data to facilitateeffective and efficient analysis of the data. Obtaining and/orprocessing the raw data to produce a visualization of the data, however,can be a challenge. When visualizing “big data,” for example, the costsrelated to obtaining and/or processing all of the data may besubstantial. While advances in the performance of computer hardware havegreatly increased the capabilities of servers and networks to obtain andprocess data as well as lowered the costs to do so, the amount of dataavailable to be obtained and processed has grown exponentially incomparison to any advances in hardware performance. Moreover, becauseobtaining and/or processing of such data may be time consuming, users oftypical data visualization systems generally experience considerabledelay before being provided with substantive information related totheir requests. These and other drawbacks exist.

SUMMARY OF THE INVENTION

Aspects of the invention relate to methods, apparatuses, and/or systemsfor facilitating queries via request-prediction-based temporary storageof query results.

In some embodiments, prediction of requests and temporary storage ofquery results related to the predicted requests, selective obtainment ortemporary storage of subsets of the query results related to thepredicted requests, or other techniques may be performed. As an example,a request for query results may be predicted, a subset of results may beobtained responsive to the request prediction, and the subset of resultsmay be stored at a server cache, a web cache, memory cache, or othertemporary data storage. When the predicted request (or a future requestmatching the predicted request) does occur, the subset of results may beobtained from the temporary data storage and used to respond to theoccurred predicted request. In one use case, the subset of results maybe obtained responsive to the request prediction without obtainment ofone or more other subsets of results (relevant to the predicted request)occurring from the request prediction. In another use case, the subsetof results may be stored at the temporary data storage without thestorage of one or more other subsets of results (relevant to thepredicted query) occurring from the request prediction. As an example,the obtainment and/or temporary storage of the subset of results (or thelack thereof with respect to the other subsets of results) may be basedon cost information, frequency information, preference information, orother information as described herein.

Various other aspects, features, and advantages of the invention will beapparent through the detailed description of the invention and thedrawings attached hereto. It is also to be understood that both theforegoing general description and the following detailed description areexemplary and not restrictive of the scope of the invention. As used inthe specification and in the claims, the singular forms of “a,” “an,”and “the” include plural referents unless the context clearly dictatesotherwise. In addition, as used in the specification and the claims, theterm “or” means “and/or” unless the context clearly dictates otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B show a system for facilitating data streaming services,data visualization services, or other data access services, inaccordance with one or more embodiments.

FIG. 2 illustrates a data visualization user interface, in accordancewith one or more embodiments.

FIG. 3 shows a flowchart of a method of facilitating reduction ofnetwork resource usage with respect to writes to a data storagecorresponding to a landing zone, in accordance with one or moreembodiments.

FIG. 4 shows a flowchart of a method of facilitating load reduction at alanding zone, in accordance with one or more embodiments.

FIGS. 5-7 show flowcharts of methods of facilitating queries viarequest-prediction-based temporary storage of query results, inaccordance with various embodiments.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the embodiments of the invention. It will beappreciated, however, by those having skill in the art that theembodiments of the invention may be practiced without these specificdetails or with an equivalent arrangement. In other instances,well-known structures and devices are shown in block diagram form inorder to avoid unnecessarily obscuring the embodiments of the invention.

FIG. 1A shows a system 100 for facilitating data streaming services,data visualization services, or other data access services, inaccordance with one or more embodiments. As shown in FIG. 1A, system 100may include server(s) 102, client device 104 (or client devices 104a-104 n), or other components. Server 102 may include query subsystem112, data prediction subsystem 114, update subsystem 116, requestprediction subsystem 118, landing zone subsystem 120, temporary storagesubsystem 122, presentation subsystem 124, or other components. Eachclient device 104 may include any type of mobile terminal, fixedterminal, or other device. By way of example, client device 104 mayinclude a desktop computer, a notebook computer, a tablet computer, asmartphone, a wearable device, or other client device. Users may, forinstance, utilize one or more client devices 104 to interact with oneanother, one or more servers, or other components of system 100.

FIG. 1B shows another representation of system 100, in accordance withone or more embodiments. As shown in FIG. 1B, system 100 may furtherinclude one or more landing zones 162 (e.g., landing zones 162 a-162 n),temporary data storage(s) 164, or other components. It should be notedthat, while one or more operations are described herein as beingperformed by particular components of server 102, those operations may,in some embodiments, be performed by other components of server 102 orother components of system 100. As an example, while one or moreoperations are described herein as being performed by components ofserver 102, those operations may, in some embodiments, be performed bycomponents of client device 104.

As discussed, obtaining and/or processing data to produce avisualization of the data can be a challenge. While advances in theperformance of computer hardware have greatly increased the capabilitiesof servers and networks to obtain and process data as well as loweredthe cost to do so, the amount of data available to be obtained andprocessed has grown exponentially in comparison to any advances inhardware performance. Moreover, because obtaining and/or processing ofsuch data may be time consuming, users of typical data visualizationsystems generally experience considerable delay before being providedwith substantive information related to their requests. A number ofsolutions have been implemented to address one or more of the foregoingissues, including those described in U.S. patent application Ser. No.14/634,680 (filed Feb. 27, 2015, entitled “Prioritized Retrieval and/orProcessing of Data,” and issued as U.S. Pat. No. 9,251,276 on Feb. 2,2016) and U.S. patent application Ser. No. 14/698,421 (filed Apr. 28,2015, entitled “Prioritized Execution of Plans for Obtaining and/orProcessing Data,” and issued as U.S. Pat. No. 9,389,909 on Jul. 12,2016), each of which is incorporated herein by reference in itsentirety.

In some embodiments, system 100 may facilitate the reduction of networkresource usage, for example, via an architecture designed to provide alower frequency of updates to a set of results stored at a given datastorage corresponding to a landing zone (e.g., via which a client deviceobtains the updated set of results or interacts to have its requestsrelated to the updated set of results handled) or via other techniques.As an example, predicted or other calculated values, representations ofthose calculated values, raw data for calculating those values, or otherresults (of the set of results) stored at the data storage(corresponding to the landing zone) may be updated less frequency than afrequency at which the set of results stored at another data storage isupdated. In some embodiments, raw data relevant to a client-initiatedquery may be continuously streamed and processed to calculate updatedresults, and the updated results may be used to update aprior-calculated version of such results stored at a first data storage.The updated results stored at the first data storage may be used toupdate a prior-calculated version of such results stored at one or moreother data storages (corresponding to one or more landing zones) suchthat the set of results stored at each of the other data storages isupdated less frequently than the corresponding set of results stored atthe first data storage. In this way, for example, the differentfrequencies at which the sets of results are updated at the respectivedata storages may reduce the cost of writing to a given data storage(e.g., the other data storages corresponding to a landing zone) viawhich such results are obtained to respond to a client request, whilestill allowing for the results stored on at least one data storage to beupdated at a faster rate based on further data being obtained in acontinuous fashion.

In some embodiments, system 100 may facilitate reduction of load at alanding zone and/or improve efficiency of request handling, for example,via dynamic assignment of one or more landing zones to handle specificrequests (e.g., responsive to request predictions or other triggers),via dynamic configuration of client devices to cause the client devicesto redirect their requests and related subsequent requests to therespective assigned landing zones, or via other techniques. As anexample, the landing zones may be assigned to handle specific requestsbased on parameters of the request, such as search parameters of a query(e.g., keywords for such search, attributes for which values are sought,etc.), attributes (or their values) that are to be updated, or otherrequest parameters. If, for example, a requested query (obtained at afirst landing zone) from a client device matches one of the queries towhich a second landing zone is assigned to handle (e.g., responsive to aprediction of the matching query or other triggers), the client devicemay be caused to redirect the query request to the second landing zone.Moreover, in some cases, the client device may additionally be caused totransmit its subsequent requests (for an update related to the requestedquery) to the second landing zone without first transmitting thesubsequent requests to the first landing zone. As such, computerresources usage and delay may be reduced, for example, by avoiding theinitial transmission of the subsequent requests to the first landingzone, avoiding additional operations needed to cause the client deviceto direct those subsequent requests following the initial transmissionto the first landing zone, etc. In addition, because landing zones maybe assigned to handle specific requests (e.g., those having a certainset of search parameters), system 100 may improve the efficiency ofhandling such requests in some scenarios (e.g., based on temporarystorage and/or caching techniques described herein or other techniques).

In some embodiments, system 100 may facilitate reduction of delay forproviding a sufficient response to a request and/or improve efficiencyof temporary data storage or other computer resource usage, for example,via prediction of requests and temporary storage of query resultsrelated to the predicted requests, via selective obtainment or temporarystorage of subsets of the query results related to the predictedrequests, or other techniques. As an example, a request for queryresults may be predicted, a subset of results may be obtained responsiveto the request prediction, and the subset of results may be stored at aserver cache, a web cache, memory cache, or other temporary datastorage. When the predicted request (or a future request matching thepredicted request) does occur, the subset of results may be obtainedfrom the temporary data storage (e.g., in lieu of having to obtain thesubset of results through other data storage with significantly greaterdelay) and used to respond to the occurred predicted request. In one usecase, the subset of results may be obtained responsive to the requestprediction without obtainment of one or more other subsets of results(relevant to the predicted request) occurring from the requestprediction (e.g., no queries for the other subsets of results may beexecuted, queries being performed may be stopped before the othersubsets of results are obtained, etc.). In another use case, the subsetof results may be stored at the temporary data storage without thestorage of one or more other subsets of results (relevant to thepredicted query) occurring from the request prediction (e.g., no cachingof the other subsets of results may be triggered by the requestprediction). As an example, the obtainment and/or temporary storage ofthe subset of results (or the lack thereof with respect to the othersubsets of results) may be based on cost information, frequencyinformation, preference information, or other information as describedherein. In this way, for example, the selectiveness of the obtainmentand/or temporary storage of results (prior to particular requestsoccurring) may significantly decrease latency or other delays forsufficiently responding to requests and improve efficiency of temporarydata storage or other computer resource usage.

Prediction of Values Based on a Data Subset

In some embodiments, query subsystem 112 may obtain data related tocalculating a set of values. Data prediction subsystem 114 may predictthe set of values based on a subset of the related data. As an example,the set of values may be associated with one or more attributes. Arequest for those values may be obtained (e.g., from a client device orother device), and an initial query (or an initial set of“micro-queries”) may be performed based on the request to obtain aninitial subset of data related to calculating values associated with theattributes. The associated values may then be predicted based on theinitial data subset. As an example, a value may be associated with oneor more attributes (e.g., an object, an entity, a property, acharacteristic, etc.). With respect to FIG. 2, for example, valuesrepresented by data elements 206 a-206 y may each be associated with atleast one attribute represented in sections 202 a-202 e, at least oneattribute represented in sections 204 a-204 e, and at least oneattribute represented in sections 208 a-208 e.

In some embodiments, the predicted set of values may includeapproximations of what the values of the set of values would be had acomplete set of data corresponding to the set of values been used tocalculate the values of the set of values. In one use case, forinstance, micro-query delegation may be performed to enable fasterreal-time results of large streaming data by performing numerousmicro-queries on a distributed data store. An approximation of the finaldata values may be performed based on results from a subset of themicro-queries by extrapolating from the resulting data that has beenprocessed thus far to estimate the final data values before all of themicro-queries are completed. Data elements may be generated based on theapproximated data values to present users with approximated visualizedinformation without having to wait for all of the micro-queries to becompleted. In this way, among other benefits, user experience may beimproved by providing users with visualized information representingfinal data values without having to wait for all of the results from themicro-queries to be obtained by predicting what the final data valueswill likely be based on results from a subset of the micro-queries thathave been obtained. Upon receipt of further data from the micro-queries,an updated approximation of the final data values may be performed andthen utilized to generate updated data elements to replace the previousversion of the approximated data elements, thereby “sharpening” the dataelements.

In some embodiments, the predicted values may be utilized to prioritizeretrieval and/or processing of data related to one subset of theattributes over retrieval and/or processing of data related to othersubsets of the attributes, for example, as described in U.S. patentapplication Ser. No. 14/634,680, filed Feb. 27, 2015 and entitled“Prioritized Retrieval and/or Processing of Data,” and issued as U.S.Pat. No. 9,251,276 on Feb. 2, 2016, which is incorporated herein byreference in its entirety. In one use case, for example, priority may beassigned to a particular subset of attributes when the predicted valuesassociated with the subset of the attributes are greater than thepredicted values associated with other subsets of the attributes (e.g.,if the attributes and their associated values are to be presented indescending order). In another use case, priority may be assigned to aparticular subset of attributes when the predicted values associatedwith the subset of the attributes are less than the predicted valuesassociated with other subsets of the attributes (e.g., if the attributesand their associated values are to be presented in ascending order). Insome embodiments, an “attribute” may comprise an object, an entity, aproperty, a characteristic, etc., of the entity-attribute-value model(which may also be referred to as the “object-attribute-value model”) orother data model. As an example, with respect to theentity-attribute-value model, a value associated with two attributes maycomprise a value associated with a characteristic of an entity where thecharacteristic is a first attribute and the entity is a secondattribute.

Presentation subsystem 124 may effectuate presentation of a datavisualization user interface (e.g., at client devices 104). The datavisualization user interface may be programmed to obtain user entryand/or selection of a first attribute group (associated with firstattributes), a second attribute group (associated with secondattributes), and/or other information. The user entry and/or selectionmay correspond to a request for values. The data visualization userinterface may be programmed to present (predicted, updated, and/orcalculated) values associated with a set of attributes (or arepresentation thereof) based on the request.

In some embodiments, a data visualization user interface effectuated bypresentation subsystem 124 may be in the form of a pivot table (or otherdisplay style). The data visualization user interface may include rows,columns, data elements, other portions, and/or other interface elements.The rows and columns may represent respective ones of at least a firstset of attributes (or first attributes) and a second set of attributes(or second attributes). Data elements may individually represent a valueassociated with a respective one of the first attributes and arespective one of the second attributes. For example, a datavisualization user interface may include a construction of an N by Mmatrix where N represents a series of first attributes in rows and Mrepresents a series of second attributes as columns. The intersection ofN and M may represent the data elements representing the valuesassociated with the first and second attributes. With respect to FIG. 2,for example, user interface 200 may be such a data visualization userinterface. It is noted that the depiction of user interface 200 andaccompanying descriptions are intended for illustrative purposes only.For example, in some embodiments, the procedures and/or processesdescribed in connection with user interface 200 may instead be performedwithout the presentation of values to a user. Instead, for instance,predicted values may simply be stored in a database for later use,placed into a queue for further processing, etc. In some embodiments,other data visualization user interfaces (e.g., effectuated bypresentation subsystem 124 or other components) may be provided.

As an example, in FIG. 2, portion 210 may represent a first attributegroup (e.g., State, Gender, Zip Code, City, Income, Product Category, orother attribute group). Portion 202 may include sections 202 a-202 ethat may represent at least a subset of attributes (e.g., Alabama,Alaska, Arizona, and/or other states; Male, Female, or othercharacteristic; 92007, 92014, 92024, and/or other zip codes; 0-$25 k,$25 k-$50 k, and/or other income or range; Electronics, Books, Jewelry,Accessories, Arts, Audio, Men's, Women's, and/or other productcategories; and/or other attributes) included in the first attributegroup. Portion 210 may include a first control element 211. The firstcontrol element 211 may facilitate setting of a sorting preference forthe attributes included in the first attribute group (e.g., therebyaffecting the order in which the attributes may be presented). Sortingmay be based on a description (e.g., name, numerical range, and/or otherdescription) of respective ones of the attributes of the first attributegroup, the values associated with the attributes of the first attributegroup, or other criteria. For example, the first control element 211 maybe used to sort the attributes of the first attributes group inascending order based on their respective values, descending order basedon their respective values, alphabetically based on the names of thefirst attributes, etc. As an example, the sorting may modify the subsetof attributes that are displayed in sections 202 a-202 e.

In FIG. 2, portion 212 may represent a second attribute group (e.g.,State, Gender, Zip Code, City, Income, Product Category, and/or otherattribute group). Portion 204 may include sections 204 a-204 e that mayrepresent a subset of attributes (e.g., Alabama, Alaska, Arizona, and/orother states; Male or Female; 92007, 92014, 92024, and/or other zipcodes; $0-$25 k, $25 k-$50 k, and/or other incomes or ranges;Electronics, Books, Jewelry, Accessories, Arts, Audio, Men's, Women's,and/or other product categories; and/or other attributes) included inthe second attribute group. Portion 212 may include a second controlelement 213. The second control element 213 may facilitate setting asorting preference for the attributes included in the second attributegroup. The sorting may, for example, affect the attributes of the secondattribute group that may be included in the subset of attributesdisplayed in sections 204 a-204 e.

Portion 206 may include data elements 206 a-206 y that may represent atleast some values associated with the attributes of the first and/orsecond attribute groups. The values conveyed by the data elements 206a-206 y may be associated with respective ones of the attributes of thefirst attribute group in sections 202 a-202 e and respective ones of theattributes of the second attribute group in sections 204 a-204 e. Forexample, data element 206 a may be associated with a first attribute insection 202 a and a second attribute in section 204 a.

Control elements 224, 226, and/or 228 may facilitate user modificationsto user interface 200. As an example, control element 224 may correspondto configuring and/or setting the attribute groups represented by thecolumns and rows of the pivot table. Control element 226 may be selectedto apply filters to explore other available data elements 206 a-206 ythat may not currently be in the viewable area of portion 206, or mayinitiate requests for other values. Control element 228 may be selectedto change the display style for depicting the attribute groups,attributes, values, and/or other information. Display styles maycomprise a pivot table, a bar chart, a bubble graph, a pie chart, ascatter plot, a word cloud, a zoomable map, and/or other di splay style.

Still referring to FIG. 2, portion 214 may include a pause/play button216 for pausing or playing the data visualization, an indicator 218specifying that the data visualization is live data, and a sliding-basedcontrol element 220 having a movable control element 222 for rewindingto visualize historical data, fast-forwarding back to visualize livedata, fast-forwarding to visualize predictions of future data, etc. Asshown by indicator 218, the data visualization that is depicted inportion 206 may represent live data. A user may, for example, slidemovable control element 222 to the left on sliding-based control element220 to switch the data visualization of the live data to a datavisualization of historical data.

In one scenario, with respect to FIG. 2, data elements 206 a-206 y mayrepresent values associated with attributes displayed in sections 202a-202 e (and/or with value types displayed in section 208 a-208 e). Theassociated values may, for example, include the most up-to-date valuesfor a certain time period thus far (e.g., a current day, week, month,year, etc.). Upon the moving of movable control element 222 toward theleft along sliding-based control element 220 onto a point associatedwith a particular time, a request for data elements associated with thedisplayed attribute (with respect to the particular time and/or timeperiod) may be initiated. As an example, responsive to the request, ahistorical data store may be determined and used to obtain datanecessary for determining values that may be represented by the dataelements 206 a-206 y.

Returning to FIG. 1A, based on the selection of a first and/or a secondattribute group, the query subsystem 112 may perform queries for datarelating to attributes of the first attribute group, attributes of thesecond attribute group, and/or other attributes. The queries may beperformed across a plurality of data sources. The queries may beperformed over one or more query intervals (e.g., based on data sources,time periods, geographic areas, etc.). As an example, responsive to auser request for a data visualization of overall sales volume of variousproduct categories during a particular year, at least first and secondsets of queries may be performed (where each set comprises one or morequeries). The first and second sets of queries may be performed inseries or in parallel. When data from one set of queries is obtained,the obtained data may be processed to predict the values associated withthe overall sales volume of the various product categories during therequested year without having to wait for data from the other set(s) ofqueries to be obtained. When data from at least one remaining set ofqueries is obtained, this data may then be processed to update thepredicted values (e.g., if not all of the queries have returned data)and/or calculate the final values associated with the overall salesvolume of the various product categories during the requested year(e.g., if data from all of the queries have been obtained).

In one use case, the first set of queries may comprise one or morequeries to a first subset of the relevant data sources to be searchedfor the requested data, and the second set of queries may comprise oneor more queries to a second subset of the relevant data sources for therequested data. In another use case, the first set of queries maycomprise one or more queries for such data related to one or more timeperiods during the requested year, and the second set of queries maycomprise one or more queries for such data related to one or more othertime periods during the requested year. In yet another use case, thefirst set of queries may comprise one or more queries for such datarelated to one or more geographic areas (e.g., a subset of zip codes perstate, a subset of cities per state, a subset of regions per country,etc.), and the second set of queries may comprise one or more queriesfor such data related to one or more other geographic areas.

In some embodiments, data prediction subsystem 114 may predict valuesassociated with a set of attributes based on a subset of data obtainedvia an initial query that corresponds to an initial query interval(e.g., a subset of relevant data sources, a subset of a requested timeperiod, a subset of a requested geographic area, etc.). In one scenario,with respect to FIG. 2, a first attribute group “Product Category” mayinclude attributes such as Books, Electronics, Jewelry, Men, Women,Toys, Pet products, and/or other attributes. A second attribute group“User Income” may include attributes such as $0 to $25,000, $25,000 to$50,000, $50,000 or more, and/or other attributes. A third attributegroup “Sale Numbers” may include sales volume and/or other attributes.As an example, Table 1 below may represent predicted values associatedwith sale volumes (e.g., by unit), respective ones of the “ProductCategory” attributes (e.g., rows), and respective ones of the “UserIncome” attributes (e.g., columns) that may be streamed in real-time.

TABLE 1 User Income $0 to $25,000 $25,000-$50,000 $50,000 or moreProduct Category Volume Volume Volume Books 107,460,342 107,476,52171,653,491 Electronics 80,622,191 80,610,360 53,752,435 Jewelry67,181,209 67,180,592 44,799,309 Men 26,858,564 26,871,587 17,906,847Women 26,874,505 26,877,982 17,917,377

The values in Table 1 may be predicted sales volumes of the respective“Product Category” and “User Income” attributes for a certain timeperiod (e.g., current day, week, month, year, etc.). The predictedvalues may represent a first prediction based on a first subset of dataobtained from a first query. For example, the above values may representa prediction of sales volumes for a 1-hour period of a given day and/orother time period. From the first prediction, it may be determined thatBooks, Electronics, Jewelry, Men, and Women product categories occupythe top five highest sales volumes with regard to all productcategories. For example, in Table 1, the highest predicted sales volumeon a product category basis for users in the income range of $0 to$25,000 is Books at 107,460,342 units. Such values may be reflected bydata elements 206 a-206 y in the pivot table of user interface 200. Thevalues may be updated continuously to represent the most up-to-dateprediction of sales volume values for each of the attributes as morequeries for data are performed.

In one use case, retrieval and/or processing of data related to onesubset of the attributes over retrieval and/or processing of datarelated to one or more other subsets of the attributes may be performed.Prioritizing retrieval and/or processing may be based on a comparison ofthe predicted values with one another (e.g., based on highest-to-lowestsorting, lowest to highest sorting, and/or other considerations). Withrespect to FIG. 2, for example, the retrieval and/or processing of datarelated to the attributes in sections 202 a-202 e may be prioritizedover attributes not included in the sections 202 a-202 e (e.g., the“Product Category” attributes not within the “top five” list). In thescenario of Table 1, the retrieval and/or processing of data related toBooks, Electronics, Jewelry, Men, and Women may be prioritized overretrieval and/or processing of data related to Toys, Pet products,and/or other “Product Category” attributes.

Updating of Calculated Values Stored at Respective Data Storages

In some embodiments, update subsystem 116 may cause one or morecalculated values to be stored on one or more data storages. Uponobtaining an updated version of a calculated value, update subsystem 116may store the updated version of the calculated value on the datastorages. As an example, update subsystem 116 may cause the updatedversion of the calculated value to replace a prior version of thecalculated value. In one scenario, for instance, the calculated valuesmay include one or more predicted values that are approximations of whatthe values would be (had a complete set of data corresponding to thevalues been used to calculate the values). Update subsystem 116 mayupdate a stored prior version of the predicted values by replacing thestored prior version with an updated version of the predicted values. Ina further scenario, update subsystem 116 may continuously update thestored predicted values.

In some embodiments, update subsystem 116 may cause a calculated set ofvalues to be stored at multiple data storages, where at least one of thedata storages corresponds to a landing zone. As an example, the landingzone may be the corresponding data storage, a server (e.g., a physicalserver, a virtual server, etc.), an area (e.g., a web page, a node,etc.) hosted at the server, or other component via which a client deviceobtains data (e.g., at least some values of the calculated set ofvalues, raw query results, or other data) or via which the client deviceinteracts to have its requests handled. As another example, the datastorages may be server data storages, such as areas on one or more harddrives or other electronic storages (e.g., server cache, web cache,other temporary data storage, or other storage) hosted at a server,databases associated with a server, or other server data storages. Theserver data storages may be associated with the same server or differentservers. It should be noted that, although some embodiments aredescribed herein with respect to predicted values stored at multipledata storages and/or the updating of those predicted values stored atthe respective data storages, it is understood that other types ofcalculated values (e.g., values calculated based on complete sets ofdata corresponding to the respective values) may be stored at themultiple data storages and updating of the other types of calculatedvalues (stored at the respective data storages) may be performed viavarious techniques described herein with respect to predicted values.

In some embodiments, upon obtaining a subset of data related tocalculating a set of values, the set of values may be predicted based onthe subset of the related data and stored on a first data storage and asecond data storage, where at least the second data storage correspondsto a landing zone via which a client device obtains data (e.g., at leastsome values of the predicted set of values, raw query results, or otherdata) or via which the client device interacts to have its requestshandled. Update subsystem 116 may update the predicted set of values(stored at the first data storage) based on further subsets of therelated data. As an example, update subsystem 116 may continuouslyupdate the predicted set of values (stored at the first data storage)based on the further subsets of the related data during a given timeperiod such that the predicted set of values (stored at the first datastorage) is updated at least a first number of times within the timeperiod. In one use case, for instance, the continuous updating duringthe time period may include periodically updating the predicted set ofvalues (stored at the first data storage during the time period). Inanother use case, the continuous updating (during the time period) mayinclude updating the predicted set of values (stored at the first datastorage) in real-time during the time period as the further subsets ofthe related data are being obtained.

In some embodiments, update subsystem 116 may update the predicted setof values (stored at the second data storage corresponding to a landingzone) based on the predicted set of values stored at the first datastorage. As an example, update subsystem 116 may continuously update thepredicted set of values (stored at the second data storage) such thatthe predicted set of values (stored at the second data storage) isupdated less than the first number of times (that the predicted set ofvalues stored at the first data storage is updated) within the timeperiod. In some embodiments, the continuous updating of the predictedset of values stored at the second data storage may include periodicallytransmitting a version of the predicted set of values stored at thefirst data storage to the second data storage (e.g., every 5 seconds,every minute, or other rate) to replace a version of the predicted setof values stored at the second data storage. Each of the periodicallytransmitted versions may, for instance, be more recently updated thanthe respective replaced version of the predicted set of values stored atthe second data storage.

In one use case, for example, approximations of the overall jewelrysales (in the United States for a given year) may be obtained from thesecond data storage (to which a landing zone for a client devicecorresponds) and provided to the client device to respond to the clientdevice's request for the overall jewelry sales. Although data relevantto the overall jewelry sales (in the United States for a given year) maybe continuously streamed and processed to calculate updatedapproximations of the actual overall jewelry sales every second (orbased on another time interval), the approximations stored at the seconddata storage may only be updated with the most recent updatedapproximations every five seconds (or based on another other timeinterval greater than the frequency in which the approximationsavailable from another data storage, such as the first data storage, areupdated). In this way, for example, the different frequencies at whichthe approximations are updated at the respective data storages mayreduce the cost of writing to a given data storage (e.g., the seconddata storage) from which the approximations are obtained to respond to aclient request, while still allowing for the approximations to beupdated and stored (on another component such as the first data storage)at a faster rate. As an example, if the cost of each write to the firstdata storage for each set of approximations is one unit, and the cost ofeach write to the second data storage for each set of approximations is100 units (e.g., in monetary or computer resources costs), then the costsavings of updating each set of approximations at the second datastorage every five seconds (as opposed to every second) is about 7million units per day (i.e., 24 hours/day*60 minutes/hour*60seconds/minute*(⅘ in savings for each update)*100 units). As anotherexample, when this cost savings is extrapolated out to 20,000 differentrequested sets of approximations, the cost savings is about 140 billionunits per day (or about 50 trillion units per year).

In some embodiments, update subsystem 116 may determine an update ratefor updating a predicted set of values stored at a given data storage.In some embodiments, the update rate may be based on cost information,such as information indicating one or more costs associated with writingto the data storage or other information. As an example, an update ratefor updating the predicted set of values stored at a first data storagemay be a first update rate, and an update rate for updating thepredicted set of values stored at a second data storage (e.g., to whicha landing zone for client requests may correspond) may be a secondupdate rate. In one scenario, the first update rate may be determined(as an update rate for updating the predicted set of values to the firstdata storage) based on the costs associated with writing to the firstdata storage. In another scenario, the second update rate may bedetermined (as an update rate for updating the predicted set of valuesto the second data storage) based on the costs associated with writingto the second data storage. Such associated costs may, for instance,comprise a monetary cost for writing to the respective data storage, acomputer resource cost for writing to the respective data storage (e.g.,bandwidth or other network resource usage amount or other computerresource cost), or other costs.

In some embodiments, landing zone subsystem 120 may obtain compatibilityinformation associated with a client device. Landing zone subsystem 120may select, based on the compatibility information, a given data storagefrom a plurality of data storages is a data storage for storage ofversions of calculated values requested by the client device. As anexample, a predicted set of values stored at a first data storage may becontinuously updated at a first update rate, and the predicted set ofvalue stored at a second data storage may be continuously updated at asecond update rate. Landing zone subsystem 120 may select the seconddata storage as a data storage for storing the predicted set of valuesbased on compatibility information associated with the client device(requesting the set of values) indicating that the client device iscompatible with the second data storage. In one scenario, for instance,the compatibility information may comprise information indicating one ormore database management systems with which the client device iscompatible or other information. The second data storage may be selected(for storage of versions of the predicted set of values) based on adetermination that the second data storage uses at least one of thecompatible database management systems (indicated by the compatibilityinformation).

Landing Zone Assignments

In some embodiments, one or more landing zones may be assigned to handlerequests, such as a query (or a submission of such query), an updaterequest related to the query, a request to perform one or more otheractions (e.g., send a message, upload or publish content, etc.), orother request. A landing zone may, for instance, include a data storage(e.g., a database or other data storage), a server (e.g., a physicalserver, a virtual server, etc.), an area (e.g., a web page, a node,etc.) hosted at the server, or other component via which a client deviceobtains data or interacts to have its requests handled. As an example,the landing zones may be assigned based on geographic region, carrier(e.g., Internet Service Providers or other carriers), device type (e.g.,mobile devices, iOS devices, Android devices, or other device types), IPaddress, MAC address, or other criteria. As another example, the landingzones may be assigned to handle specific requests based on parameters ofthe requests, such as search parameters of a query (e.g., keywords forsuch search, attributes for which values are sought, etc.), attributes(or their values) that are to be updated, or other request parameters.

In some embodiments, a client device may be caused to redirect a request(that the client device initially provided to one landing zone) toanother landing zone based on geographic region, carrier, device type,IP address, MAC address, or other criteria. As an example, if a requestoriginating from a particular geographic region is obtained at onelanding zone, a client device (from which the request was obtained) maybe redirected to another landing zone assigned to handle requestsoriginating from the geographic region. As another example, if a requestoriginating from a client device (associated with a particular carrier)is obtained at one landing zone, the client device may be redirected toanother landing zone assigned to handle requests originating from clientdevices associated with the carrier. As another example, if a requestoriginating from a client device (of a particular device type) isobtained at one landing zone, the client device may be redirected toanother landing zone assigned to handle requests originating from clientdevices of the device type. As another example, if a request originatingfrom a client device associated with an address (e.g., IP address, MACaddress, etc., with a particular address range) is obtained at onelanding zone, the client device may be redirected to another landingzone assigned to handle requests originating from client devicesassociated with addresses having the address range. As yet anotherexample, if a request with a particular set of request parameters isobtained at one landing zone, the client device may be redirected toanother landing zone assigned to handle requests with the same orsimilar sets of request parameters.

In some embodiments, a landing zone may be assigned to handle one ormore specific predicted requests (or requests that are the same orsimilar to such predicted requests). In some embodiments, requestprediction subsystem 118 may predict a request related to aclient-initiated query prior to the query-related request being obtainedfrom a client device at a first landing zone. Landing zone subsystem 120may assign one or more other landing zones to handle responding to thequery-related request such that, when the query-related request isobtained from the client device at the first landing zone, the clientdevice may be caused to redirect the query-related request to at leastone of the other landing zones. As an example, the query-related requestmay comprise a query submission related to the client-initiated query,an update request related to the client-initiated query, or otherrequest. In some embodiments, the first landing zone may be a defaultlanding zone, and the other landing zones may each be a query-specificlanding zone. In this way, for example, system 100 may reduce the loadon a given landing zone by assigning other landing zones to handlerespective sets of requests and causing client devices to redirect theirrequests (that they initially transmitted to the given landing zone) tothe other landing zones respectively assigned to handle their requests.For example, with respect to the “micro-queries” and “data sharpening”context described herein, a single client device may initiate (for eachclient-initiated query) numerous requests to a landing zone for newupdates to approximated results. If, for instance, the client deviceinitiates a request every five seconds, this would be over 17,000requests obtained from the client device alone per day. When thousandsof client devices (or hundreds of thousands or millions of clientdevices) are each initiating numerous requests to a single landing zone,the landing zone may become overloaded and unable to handle thoserequests. Thus, the assignment of other landing zones to handlerespective requests and the redirection based thereon may avoid theoverloading of any given landing zone (e.g., a default landing zone orother landing zone). In addition, because landing zones may be assignedto handle specific requests (e.g., those having a certain set of searchparameters), system 100 may improve the efficiency of handling suchrequests in some scenarios (e.g., based on temporary storage and/orcaching techniques described herein or other techniques).

In some embodiments, request prediction subsystem 118 may determinerequest history information comprising information indicating one ormore prior queries, information indicating respective frequencies ofrequests (e.g., a frequency of each of the prior queries, updaterequests related to the prior queries, etc.), information regardingusers or client devices that initiated prior requests, or otherinformation. Request prediction subsystem 118 may predict one or morerequests to occur in the future based on the request history information(e.g., the prior query indications, the frequency indications, the userand/or client device information, etc.).

As an example, based on obtaining an initial query submission from aclient device, request prediction subsystem 118 may determine that it islikely that an update request related to the initial query submissionwill be obtained (e.g., from the client device or other component). Inone use case, with respect to applications configured for “datasharpening” based on micro-queries, an approximation of the final datavalues (relevant to the client query) may be performed based on resultsfrom a subset of the micro-queries by extrapolating from the resultingdata that has been processed thus far to estimate the final data valuesbefore all of the micro-queries are completed. Data elements may begenerated based on the approximated data values to present users withapproximated visualized information without having to wait for all ofthe micro-queries to be completed. If such applications are configuredto automatically update the generated data elements based on an updatedapproximation of the final data values (e.g., to “sharpen” the datavisualization when further data from the micro-queries are obtained),request prediction subsystem 118 may predict that the update request(related to the initial query submission) will be obtained in the nearfuture (e.g., based on the known frequencies of such updates or otherinformation).

As another example, a request including one or more parameters may bepredicted to occur in the future based on the frequency of priorrequests that include those parameters. The request parameters mayinclude search parameters of a query (e.g., keywords for such search,attributes for which values are sought, etc.), attributes (or theirvalues) that are to be updated, or other request parameters. In one usecase, requests that include search parameters A, B, and C (e.g.,requests with search parameters A, B, and C as well as other searchparameters, where A, B, and C are “women's watches,” “year to date,”“United States,” or other search parameters) may occur at a frequencyrate that satisfies a certainty threshold indicating a high likelihoodof such a request occurring again within a predetermined time period(e.g., in next the few seconds, in the next few minutes, in the next fewhours, or other predetermined time period). Based on this frequencyrate, request prediction subsystem 118 may predict that a requestincluding the search parameters A, B, and C will occur within thepredetermined time period.

In some embodiments, subsequent to a request related to aclient-initiated query being predicted and a second landing zone beingassigned to handle such predicted request, the query-related request maybe obtained at a first landing zone from a client device. Based on theassignment to the second landing zone, landing zone subsystem 120 maycause the client device to redirect the query-related request to thesecond landing zone such that the client device transmits thequery-related request, subsequent requests (for an update related to theclient-initiated query), or further requests to the second landing zonewithout first transmitting the subsequent requests or the furtherrequests to the first landing zone. In some embodiments, landing zonesubsystem 120 may provide a redirection instruction, a referenceassociated with the second landing zone (e.g., an identifier or addressassociated with the second landing zone), or other information to theclient device. The providing of such information causes the clientdevice to transmit the query-related request, the subsequent requests,or the further requests to the second landing zone without firsttransmitting the subsequent requests or the further requests to thefirst landing zone. As an example, responsive to being provided theredirection instruction and the second landing zone reference, theclient device may process the redirection instruction and use the secondlanding zone reference to transmit the query-related request and thesubsequent requests to the second landing zone (e.g., without firsttransmitting the subsequent requests to the first landing zone). Asanother example, the processing of the redirection instruction may causethe client device to modify one or more of its configuration settingssuch that the client device transmits the query-related request and thesubsequent requests to the second landing zone without firsttransmitting the subsequent requests to the first landing zone.

In one scenario, with respect to FIG. 1B, responsive to a predictionthat a request will occur in the future, landing zone 162 b may beassigned to handle requests matching the predicted request. As indicatedin FIG. 1B, landing zone 162 a may obtain a request from client device104 a. If, for example, landing zone subsystem 120 determines that theobtained request matches the predicted request, landing zone subsystem120 may provide client device 104 a with a redirection instruction andan address associated with landing zone 162 b, where the redirectioninstruction indicates that client device 104 a should redirect itsrequest to landing zone 162 b using the associated address. Based on theredirection instruction and the associated address, client device 104 amay redirect its request to landing zone 162 b. In a further scenario,the redirection instruction may indicate to client device 104 a that itshould transmit subsequent requests related to its redirected request(e.g., subsequent update requests or other requests) to landing zone 162b without first transmitting the subsequent requests to landing zone 162a. The processing of the redirection instruction may, for instance,cause client device 104 a to modify one or more of its configurationsettings such that client device 104 a transmits its request and therelated further requests to landing zone 162 b without firsttransmitting the related further requests to landing zone 162 a.

In another scenario, where the redirected request of client device 104 ais a first client-initiated query, landing zone 162 a may obtain asubsequent request related to a second client-initiated query. If, forexample, landing zone subsystem 120 determines that the obtainedsubsequent request (related to the second client-initiated query)matches the earlier predicted request, landing zone subsystem 120 mayprovide client device 104 a with a redirection instruction and theaddress associated with landing zone 162 b, where the redirectioninstruction indicates that client device 104 a should redirect itsrequest to landing zone 162 b using the associated address. Based on theredirection instruction in the associated address client device 104 amay redirect its request to landing zone 162 b. In a further scenario,the redirection instruction may indicate to client device 104 a that itshould transmit further requests related to the redirected request(related to the second client-initiated query) to landing zone 162 bwithout first transmitting the further requests to landing zone 162 a.

In another scenario, landing zone 162 a may obtain a request from clientdevice 104 b. If, for example, landing zone subsystem 120 determinesthat the request (obtained from client device 104 b) matches the earlierpredicted request, landing zone subsystem 120 may also provide clientdevice 104 b with a redirection instruction and the address associatedwith landing zone 162 b where the redirection address indicates thatclient device 104 b should redirect its request to landing zone 162 busing the associated address. Like client device 104 a, client device104 b may redirect its request to landing zone 162 b based on theredirection instruction in the associated address. In a furtherscenario, like with client device 104 a, the redirection instruction mayindicate to client device 104 b that it should transmit subsequentrequests relating to its redirected request to landing zone 162 bwithout first transmitting the subsequent requests to landing zone 162a.

In yet another scenario, if landing zone 162 a obtains a request fromclient device 104 a, and landing zone subsystem 120 determines that therequest (obtained from client device 104 a) does not match any earlierpredicted request (assigned to some landing zone to handle), landingzone subsystem 120 may not provide a redirection instruction to clientdevice 104 a to cause client device 104 a to redirect its request toanother landing zone. As an example, if the parameters of the obtainedrequest do not match any of the respective sets of request parametersassigned to another landing zone to handle, no redirection instructionmay be provided to client device 104 to cause client device 104 toredirect its request to another landing zone. As a further example, thesearch parameters of the obtained request do not include at least onepredefined set of search parameters assigned to another landing zone tohandle, no redirection instruction may be provided to client device 104to cause client device 104 to redirect its request to another landingzone.

In some embodiments, multiple requests may be predicted to occur in thefuture, and each of the requests may subsequently be obtained at a firstlanding zone (e.g., landing zone 162 a). A second landing zone (e.g.,landing zone 162 b) may be assigned to handle responding to one of thepredicted requests, a third landing zone (e.g., landing zone 162 n) maybe assigned to handle responding to another one of the predictedrequests, and so on. In one use case, when a given query request isobtained at the first landing zone from a first client device (e.g.,client device 104 a), landing zone subsystem 120 may determine that thequery request matches a predicted request for which the second landingzone is assigned to handle. Responsive to such determination, landingzone subsystem 120 may cause the first client device to redirect itsquery request, subsequent requests for an update related to therequested query, or other requests related to the requested query to thesecond landing zone. As an example, landing zone subsystem 120 may causethe first client device to transmit the query request, the subsequentrequests, or the other requests to second landing zone without firsttransmitting the subsequent requests or the other requests to the firstlanding zone.

In a further use case, when another query request is obtained at thefirst landing zone from a client device (e.g., client device 104 a,client device 104 b, etc.), landing zone subsystem 120 may determinethat the query request matches a predicted request for which the thirdlanding zone is assigned to handle. Responsive to such determination,landing zone subsystem 120 may cause the client device to redirect thisother query request, subsequent requests for an update related to theother requested query, or other requests related to the other requestedquery to the third landing zone. As an example, landing zone subsystem120 may cause the client device to transmit the other query request, thesubsequent requests (for an update related to the other requestedquery), or the other requests (related to the other requested query) tothird landing zone without first transmitting the subsequent requests orthe other request to the third landing zone.

Request-Prediction-Based Temporary Storage of Query Results

In some embodiments, based on a prediction that a given request (orrequests similar to the predicted request) will occur in the future, oneor more actions may be initiated to prepare for the predicted request orhandle the predicted request prior to such request occurring in thefuture. As an example, with respect to a prediction of a client requestfor query results, the request may comprise a query submission (or aclient-initiated query), an update request related to theclient-initiated query, or other request. The request prediction may,for instance, be based on request history information, such asinformation indicating one or more prior queries, information indicatingrespective frequencies of requests (e.g., a frequency of each of theprior queries, update requests related to the prior queries, etc.),information regarding users or client devices that initiated priorrequests, or other information. In one scenario, at least some of therequested query results may be obtained based on the request predictionprior to the request being obtained from a client device in the future.The obtained query results may be stored (e.g., in a temporary datastorage, such as a server cache, a web cache, memory cache, or othertemporary data storage) in anticipation of the request occurring in thefuture so that the stored query results can be utilized to respond tothe future request upon its occurrence.

In some embodiments, request prediction subsystem 118 may predict arequest for query results, query subsystem 112 may obtain a subset ofresults responsive to the request prediction, and temporary storagesubsystem 122 may cause the subset of results to be stored in atemporary data storage. As an example, the subset of results may be aportion of a set of results that would have been obtained to respond tothe request had the request been obtained from a client device. In oneuse case, for instance, if the set of results are all the results thatwould have been provided on a first web page (e.g., a list of the mostrelevant results or other presentation) returned to the client device(as a response to the request), the subset of results may be a portionof those results provided on the first web page. In another use case,the set of results may be all the results that would have been obtainedto respond to the request had the request been obtained from the clientdevice.

In some embodiments, the set of results (including the subset of resultsand other subsets of results) may be stored in the temporary datastorage. In some embodiments, temporary storage subsystem 122 may causethe subset of results to be stored in the temporary data storageresponsive to the request prediction, and no storage of other subsets ofthe set of results in the temporary data storage occurs from the requestprediction. As an example, no performance of queries for the othersubsets (of the set of results) may occur from the request prediction.As another example, the performance of queries (via which the subset ofresults is obtained) may be stopped before the other subsets (of the setof results) are obtained. As yet another example, even if the othersubsets are obtained (e.g., via one or more queries responsive to therequest prediction), a determination may be made not to store the othersubsets (of the set of results) in the temporary data storage.

In some embodiments, the obtainment and/or storage of the subset ofresults (and/or the determination not to obtain or store the othersubsets of results) may be based on frequency information, costinformation, preference information, or other information. In someembodiments, the queries that are performed (via which the subset ofresults is obtained) responsive to the request prediction may be asubset of a set of queries that would have been performed to respond tothe request had the request been obtained from a client device. Theseperformed queries may be selected to be performed over one or more otherqueries (of the set of queries) such that no performance of the otherqueries occurs from the request prediction. Query subsystem may performthe selection of the subset of queries to be performed (over the otherqueries) based on the frequency information, the cost information, thepreference information, or other information. The frequency informationmay comprise information indicating a frequency of requests matching therequest or other information. The cost information may compriseinformation indicating costs for storing data in the temporary datastorage, information indicating costs for performing respective queries,or other information. Such costs may, for instance, comprise a monetarycost, a computer resource cost (e.g., bandwidth or other networkresource usage amount or other computer resource cost), or other costs.The preference information may comprise information indicating one ormore preferences related to a manner in which to present data or otherinformation. The preferences (related to a manner in which to presentdata) may comprise a preference for a sorting order for presenting data,a preference for an amount of data to be presented at a given time, apreference for a format in which to present data, or other preferences.

A cost/benefit analysis may, for instance, be performed to determinewhich and/or the amount of results to be obtained and/or storedresponsive to the request prediction. In one use case, query subsystem112 may determine whether to perform queries (and/or which queries toperform) based on their respective costs (e.g., a cost to query a datasource for data), the respective benefits of results obtained from thosequeries (e.g., a frequency of requests matching the predicted request,which of the results have priority over other results based on arequester's preference information, etc.), the respective costs forstoring those results at the temporary data storage, or other criteria.In a further use case, scores may be assigned to respective queries(before they are executed) based on their respective costs, therespective benefits of results obtained from those queries, therespective costs for storing those results at the temporary datastorage, or other criteria. As an example, a lower cost to query a datasource for data may influence a higher assigned score for acorresponding query (compare to scores for other queries). A greaterfrequency of requests matching the predicted request may influencehigher assigned scores for the queries related to the predicted request.A greater likelihood that results derived from one query will bepresented to a requester (e.g., on a user interface over other resultsderived from other queries based on the requester's preferences) mayinfluence a higher score for the query (compare to scores for the otherqueries). Based on their respective assigned scores, query subsystem 112may determine whether and/or which of one or more of the queries are tobe performed. As an example, query subsystem 112 may select a subset ofthe queries to be performed based on the subset of queries havinggreater scores than the other subsets of queries.

In another use case, even if obtained, temporary storage subsystem 122may determine whether to store results (and/or the amount of results tobe stored) based on the respective costs for storing those results atthe temporary data storage, the respective benefits of those results, orother criteria. In a further use case, scores may be assigned torespective results (e.g., subsets of results) based on the respectivecosts for storing those results at the temporary data storage, therespective benefits of those results, or other criteria. As an example,a lower cost to store certain subsets of results may influence higherassigned scores for the subset of results. A greater frequency ofrequests matching the predicted request may influence higher assignedscores for the results related to the predicted request. A greaterlikelihood that certain subsets of results will be presented to arequester (e.g., on a user interface over other results based on therequester's preferences) may influence a higher score for the subsets ofresults. Based on their respective assigned scores, temporary storagesubsystem 122 may determine whether and/or which of the results are tobe stored at the temporary data storage. Temporary storage subsystem 122may, for instance, select a subset of the results (e.g., obtained fromthe performed queries) to be stored based on the subset of resultshaving greater scores than the other subsets of results.

As indicated, in some embodiments, a determination of which and/or theamount of results to be obtained and/or stored (responsive to aprediction of a request) may be based on preference informationindicating one or more preferences related to a manner in which topresent data or other information. The preferences may be inferred basedon one or more prior actions with respect to the manner in which topresent data, explicitly defined by a customer with respect to themanner in which data is to be presented for that customer, etc.

As an example, Table 1 above may represent calculated values associatedwith sale volumes (e.g., by unit), respective ones of the “ProductCategory” attributes (e.g., rows), and respective ones of the “UserIncome” attributes (e.g., columns) that are first presented at a clientdevice (e.g., prior to other values associated with the foregoingattributes or other attributes) responsive to the client device'srequest for values associated with the foregoing attributes. The mannerin which the values and their attributes are presented may reflect apredetermined sorting order for presenting data (e.g., highest tolowest), an amount of data to be presented at a given top (e.g., the topfive values for the respective attributes), a format in which to presentthe data, or other manner in which to present the data.

In one scenario, if the manner in which the data is presented in Table 1reflects the most likely manner in which a given customer will view arequest for the values associated with the foregoing attributes (shownin Table 1), then more weight may be given to certain queries (fromwhich values that will first be presented at a client device prior toother values associated with the foregoing attributes or otherattributes) over other queries when determining whether and/or whichqueries are to be performed to obtain results relevant to a predictedrequest (for values associated with the foregoing attributes).Similarly, in another scenario, more weight may be given to the valuesthat will first be presented at a client device (or data for calculatingsuch values) over other values (or other data for calculating such othervalues) when determining whether and/or which results are to be storedin a temporary data storage in anticipation of the predicted requestoccurring in the future so that the stored results can be utilized torespond to the future request upon its occurrence. In this way, forexample, the values likely to be presented first (before other valuesare to be presented) may quickly be provided without the delaystypically associated with having to wait until those values (to bepresented first) are obtained via queries to one or more other datasources. If, for instance, data for calculating such values are storedin a temporary data storage that enables faster data retrieval (e.g.,where the temporary data storage is a server cache, web cache, memorycache, or other temporary data storage that enables faster dataretrieval, in comparison to obtaining data from the other data sources),such data may be quickly obtained and processed to calculate suchvalues, which may then be provided to respond to the request. If thecalculated values are stored in such temporary data storage, thecalculated values may be obtained and then provided to respond to therequest.

In some embodiments, although results may be obtained and/or storedresponsive to a prediction of one or more requests (as describedherein), no results may be obtained and/or stored responsive to aprediction of certain other requests (e.g., even if the probabilities ofthose other requests occurring each satisfies a certainty threshold). Asan example, query subsystem 112 may determine not to perform any queriesresponsive to a prediction of a request based on a cost/benefit analysisperformed with respect to the predicted request (e.g., based onfrequency information, cost information, preference information, orother information). As another example, temporary storage subsystem 122may determine not to store any results obtained from the requestprediction based on a cost/benefit analysis performed with respect tothe predicted request (e.g., based on frequency information, costinformation, preference information, or other information).

Request-Prediction-Based Temporary Storage of Predicted Values

In some embodiments, where a subset of results (obtained responsive to aprediction of a request) comprises a predicted set of values, querysubsystem 112 may perform queries for data related to calculating a setof values (of which the subset of values is a part) responsive to therequest prediction. Query subsystem 112 may obtain a subset of therelated data (for calculating the set of values) based on the performedqueries. Data prediction subsystem 114 may predict the set of valuesbased on the subset of the related data (e.g., without using othersubsets of the related data). Temporary storage subsystem 122 may causethe predicted set of values to be stored in a temporary data storage(e.g., a server cache, a web cache, memory cache, or other temporarydata storage) in anticipation of a future request for the set of values(or approximation thereof). Upon obtaining the request (e.g., a requestmatching the predicted request) from a client device, query subsystem112 may process the request and determine that at least some resultssatisfying the request are already stored in the temporary data storage(e.g., in the form of the stored predicted set of values). As such,query subsystem 112 may obtain the predicted values from the temporarydata storage based on the request from the client device. Presentationsubsystem may then provide the predicted set of values for presentationat the client device. As an example, the predicted set of values may beprovided to the client device, which may generate a data visualizationbased on the provided predicted set of values. As another example,presentation subsystem 124 may generate a data visualization comprisingrepresentations of the predicted set of values and provide the datavisualization at the client device.

In some embodiments, query subsystem 112 may cause the performance ofthe queries to stop prior to obtaining the other subsets of the relateddata. The performance of the queries may be stopped after at least thesubset of the related data is obtained. Data prediction subsystem 114may thus predict the set of values based on the subset of the relateddata without the other subsets of the related data. Temporary datastorage subsystem 112 may store this predicted set of values (which arepredicted without use of the other subsets of the related data) in thetemporary data storage in anticipation of a future request for the setof values (or approximation thereof). As indicated, in some embodiments,the performance of the queries may be caused to stop (prior to obtainingthe other subsets of the related data) based on frequency information,cost information, preference information, or other information.

As an example, query subsystem 112 may determine whether an amount ofdata obtained from the performance of the queries satisfies apredetermined amount threshold. If the obtained amount of data does notsatisfy the predetermined amount threshold, query subsystem 112 maycontinue the performance of the queries to obtain additional data. Ifthe obtained amount of data satisfies the predetermined amountthreshold, query subsystem may stop the performance of the queries(e.g., so that computer resources saved from the stopping of theperformance of the queries may be utilized to handle other tasks, suchas performing queries related to other predicted requests, responding toclient requests, etc.). In one scenario, query subsystem 112 maydetermine the predetermined amount threshold based on the frequencyinformation, the cost information, the preference information, or otherinformation. For example, a greater frequency of requests matching thepredicted request may influence a greater amount threshold (e.g., sothat more data may be obtained to provide more accurate value predictiongiven the likely higher number of requests for the predicted values orthe higher number of customers to which the predicted values will likelybe presented). A lower cost to continue to query a data source for data(e.g., monetary or computer resource cost) may influence a greateramount of threshold.

As another example, multiple predetermined amount thresholds may beutilized to determine whether to stop the performance of the queries,where a first predetermined threshold may be used to determine whetherto stop the performance of a first subset of the queries, a secondpredetermined threshold may be used to determine whether to stop theperformance of a second subset of queries, and so on. In one use case, agreater likelihood that certain results derived from one query will bepresented to a requester (e.g., on a user interface over other resultsderived from other queries based on the requester's preferences) mayinfluence a higher amount threshold to be used to determine whether tostop the query (compare to amount thresholds to be used to determinewhether to stop other queries). For example, if the manner in which thedata is presented in Table 1 above reflects the most likely manner inwhich a given customer will view a request for the values associatedwith the foregoing attributes (shown in Table 1), then a higher amountthreshold may be given to certain queries (from which values that willfirst be presented at a client device prior to other values associatedwith the foregoing attributes or other attributes) over other queriesfor use in determining when to stop the performance of the queries. Inthis way, for example, more data may be obtained to predict the valuesthat will likely be presented first (e.g., the top five highest salesvolumes) to facilitate more accurate prediction for those values. Byquickly providing the presentation of the more accurate predictedvalues, it may appear to the requester that there is minimal delay fromthe time of a client request being initiated at a client device and thetime at which the presentation of the “final” values are provided at theclient device (e.g., if the predicted values are the same or similar tothe actual final values when those final values are calculated).

In some embodiments, upon obtaining a request (e.g., a request matchinga predicted request) from a client device, query subsystem 112 mayprocess the request and determine that a predicted set of valuessatisfying the request are already stored in a temporary data storage.Query subsystem 112 may obtain the predicted set of values from thetemporary data storage, and presentation subsystem 124 may provide thepredicted set of values for presentation at the client device. Querysubsystem 112 may also obtain data related to calculating the predictedset of values from one or more other data sources, and data predictionsubsystem 114 may generate an updated predicted set of values based onthe obtained related data. As an example, the predicted set of valuesobtained from the temporary data storage may have been predicted basedon a subset of the related data without one or more other subsets of therelated data. The updated predicted set of values, however, may be basedon additional or alternative subsets of the related data (e.g., based onthe subset of the related data and the other subsets of the relateddata, based on the other subsets of the related data without the subsetof the related data, etc.). Upon the updated prediction, presentationsubsystem 124 may provide the updated predicted set of values forpresentation at the client device. As an example, the updated predictedset of values may be provided to the client device, which may generate adata visualization based on the provided predicted set of values. Asanother example, presentation subsystem 124 may generate a datavisualization comprising representations of the updated predicted set ofvalues and provide the data visualization at the client device.

Presentation of Temporarily-Stored Results and Updating Thereof

As discussed, in some embodiments, based on a request obtained from aclient device, query subsystem 112 may obtain one or more results fromone or more data sources (e.g., local temporary data storage, otherlocal data sources, external data sources, etc.). Presentation subsystem124 may provide a presentation at the client device based on theobtained results. As an example, the obtained results may be provided tothe client device, which may generate a data visualization based on theprovided results. As another example, presentation subsystem 124 maygenerate a data visualization comprising representations of the obtainedresults and provide the data visualization at the client device.

In some embodiments, where a subset of results (relevant to a requestfrom a client device) is stored in a temporary data storage, querysubsystem 112 may obtain the subset of results from the temporary datastorage responsive to the request from the client device. If one or moreother subsets of results (relevant to the request) are not stored in thetemporary data storage, query subsystem 112 may obtain the other subsetsof results via one or more other data sources. Presentation subsystem124 may provide a presentation at the client device based on the subsetof results and the other subset of results. In some embodiments,presentation subsystem 124 may provide a presentation at the clientdevice based on the subset of results prior to completing the obtainmentof the other subsets of results from the other data sources. Uponobtaining the other subsets of results, update subsystem 116 may directpresentation subsystem 124 to update the presentation at the clientdevice based on the subset of results, the other subsets of results, orother results. In this way, for example, a presentation related to theclient request may quickly be provided based on the temporarily-storedsubset of results, for example, in scenarios which the temporary datastorage (from which the subset of results are obtained) enable fasterdata retrieval (e.g., where the temporary data storage is a servercache, web cache, memory cache, or other temporary data storage enablesfaster data retrieval, in comparison to obtaining data from the otherdata sources). As such, for instance, the user experience of therequester (that initiated the request at the client device) may beimproved given that the requestor need not experience the delaystypically associated with having to wait until one or more of the othersubsets of the related data are obtained from the other data sourcesand/or processed.

In some embodiments, where a subset of data (related to calculating aset of values requested by a client device) is stored on a temporarydata storage, query subsystem 112 may obtain the subset of the relateddata from the temporary data storage responsive to the request from theclient device. Data prediction subsystem 114 may predict the set ofvalues at a first time based on the subset of related data (obtainedfrom the temporary data storage). As an example, data predictionsubsystem 114 may extrapolate from the subset of the related data (thathas been processed thus far) to estimate the final values (of the set ofvalues) prior to the other subsets of the related data being obtainedand/or processed. Presentation subsystem 124 may provide a presentationof the predicted set of values (that was predicted at the first time) atthe client device prior to the other subsets of the related data beingobtained and/or processed. At a second time (subsequent to the firsttime and after the other subsets of the related data is obtained),update subsystem 116 may direct data prediction subsystem 114 to updatethe predicted set of values based on the subset of the related data, theother subsets of the related data, or other data. Update subsystem 116may direct presentation subsystem 116 to update the presentation of thepredicted set of values with a presentation of the updated presented setof values (that was updated at the second time). Thus, the requester maybe quickly provided with an approximation of what the requested finalvalues are without the delays typically associated with having to waituntil one or more of the other subsets of the related data are obtainedfrom the other data sources and/or processed. Moreover, given that thepredicted set of values (predicted without the other subsets of therelated data) may reflect the final values (or close to the finalvalues), quickly providing the presentation with the initially predictedset of values may provide the requester with the appearance of minimaldelay from the time of the client request being initiated at the clientdevice and the time at which the presentation of the “final” values areprovided at the client device.

In some embodiments, where a predicted set of values (that areapproximations of a set of values requested by a client device) isstored on a temporary data storage, query subsystem 112 may obtain thepredicted set of values from the temporary data storage responsive tothe request from the client device. Presentation subsystem 124 mayprovide the predicted set of value for presentation at the clientdevice. In some embodiments, where the predicted set of values (obtainedfrom the temporary data storage) was predicted based on a subset of data(related to calculating the set of values) without one or more othersubsets of the related data, and where the other subsets of the relateddata are not stored on the temporary data storage, query subsystem 112may perform queries to one or more other data sources to obtain theother subsets of the related data. Update subsystem 116 may direct dataprediction subsystem 114 to update the predicted set of values based onthe subset of the related data, the other subsets of the related data,or other data. Update subsystem 116 may direct presentation subsystem116 to update the presentation of the predicted set of values with apresentation of the updated presented set of values. In this way, forexample, the requester may be quickly provided with an approximation ofwhat the requested final values are without the delays typicallyassociated with having to wait for an initial prediction of those finalvalues (e.g., since such initially predicted values were obtained fromthe temporary data storage) and/or until one or more of the othersubsets of the related data are obtained from the other data sourcesand/or processed. In addition, as indicated above, given that thepredicted set of values (predicted without the other subsets of therelated data) may reflect the final values (or close to the finalvalues), quickly providing the presentation with the initially predictedset of values may provide the requester with the appearance of minimaldelay from the time of the client request being initiated at the clientdevice and the time at which the presentation of the “final” values areprovided at the client device.

Examples Flowcharts

FIGS. 3-7 are example flowcharts of processing operations of methodsthat enable the various features and functionality of the system asdescribed in detail above. The processing operations of each methodpresented below are intended to be illustrative and non-limiting. Insome embodiments, for example, the methods may be accomplished with oneor more additional operations not described, and/or without one or moreof the operations discussed. Additionally, the order in which theprocessing operations of the methods are illustrated (and describedbelow) is not intended to be limiting.

In some embodiments, the methods may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The processingdevices may include one or more devices executing some or all of theoperations of the methods in response to instructions storedelectronically on an electronic storage medium. The processing devicesmay include one or more devices configured through hardware, firmware,and/or software to be specifically designed for execution of one or moreof the operations of the methods.

FIG. 3 shows a flowchart of a method 700 of facilitating reduction ofnetwork resource usage with respect to writes to a data storagecorresponding to a landing zone, in accordance with one or moreembodiments.

In an operation 302, data related to calculating a set of values may beobtained. As an example, the related data may be obtained based on oneor more queries. The queries may be performed to obtain respectiveportions of the related data from one or more data sources (e.g., localtemporary data storage, other local data sources, external data sources,etc.). Operation 302 may be performed by a query subsystem that is thesame as or similar to query subsystem 112, in accordance with one ormore embodiments.

In some embodiments, with respect to operation 302, a request for atleast some values (of the set of values) may be obtained from a clientdevice. A plurality of queries for the related data may be generatedbased on the request from the client device. The plurality of queriesmay be performed to obtain the related data. The obtainment of therequest and/or the generation of the queries may be performed by a querysubsystem that is the same as or similar to query subsystem 112, inaccordance with one or more embodiments.

In an operation 304, the set of values may be predicted based on asubset of the related data. As an example, the predicted set of valuesmay comprise approximations of what the values of the set of valueswould be had a complete set of data corresponding to the set of valuesbeen used to calculate the values of the set of values. As a furtherexample, the related data may be the complete set of data forcalculating the values of the set of values. The subset of the relateddata may be obtained responsive to performing one or more queries, andthe subset of the related data may comprise data obtained prior to oneor more other subsets of the related data being obtained. The set ofvalues may, for instance, be predicted based on the subset of therelated data without the other subsets of the related data. Operation304 may be performed by a data prediction subsystem that is the same asor similar to data prediction subsystem 114, in accordance with one ormore embodiments.

In an operation 306, the predicted set of values may be caused to bestored at a first data storage and a second data storage, where thesecond data storage corresponds to a landing zone. As an example, thelanding zone may be the second data storage, a server (e.g., a physicalserver, a virtual server, etc.), an area (e.g., a web page, a node,etc.) hosted at the server, or other component via which a client deviceobtains data (e.g., at least some values of the predicted set of values,raw query results, or other data) or via which the client deviceinteracts to have its requests handled. As another example, the firstand second data storages may be server data storages, such as areas onone or more hard drives or other electronic storages (e.g., servercache, web cache, other temporary data storage, or other storage) hostedat a server, databases associated with a server, or other server datastorages. The server data storages may be associated with the sameserver or different servers. Operation 306 may be performed by an updatesubsystem that is the same as or similar to update subsystem 116, inaccordance with one or more embodiments.

In some embodiments, with respect to operation 306, compatibilityinformation associated with the client device (that will interact withthe landing zone) may be obtained, and the second data storage may beselected (for storage of versions of the predicted set of values) fromamong a plurality of data storages based on the compatibilityinformation. As an example, the compatibility information may compriseinformation indicating one or more database management systems withwhich the client device is compatible or other information. The seconddata storage may be selected (for storage of versions of the predictedset of values) based on a determination that the second data storageuses at least one of the compatible database management systems(indicated by the compatibility information). The obtainment of thecompatibility information and/or the selection of the second datastorage may be performed by a landing zone subsystem that is the same asor similar to landing zone subsystem 120, in accordance with one or moreembodiments.

In an operation 308, the predicted set of values stored at the firstdata storage may be updated based on further subsets of the related dataat least a first number of times within a time period. As an example,the predicted set of values may initially be based on the subset of therelated data (obtained prior to one or more other subsets of the relateddata being obtained) without the other subsets of the related data. Assome of the other subsets of the related data are obtained, theinitially-obtained subset of data and the obtained ones of the othersubsets (of the related data) may be utilized to update the predictedset of values (e.g., to update the approximations of what the values ofthe set of values would be had a complete set of data corresponding tothe set of values been used to calculate the values of the set ofvalues). As another example, the predicted set of values stored at thefirst data storage may be periodically updated (e.g., every second orother rate) during the time period. As yet another example, thepredicted set of values stored at the first data storage may be updatedin real-time during the time period as the further subsets of therelated data are being obtained. Operation 308 may be performed byprediction and/or update subsystems that are the same as or similar toprediction subsystem 114 and/or update subsystem 116, in accordance withone or more embodiments. As an example, prediction subsystem 114 maypredict the set of values based on the initially-obtained subset of therelated data and the obtained other subsets of the related data. As afurther example, update subsystem 116 may cause the most recent versionof the predicted set of values to be stored at the first data storage toreplace the prior version of the predicted set of values stored at thefirst data storage.

In an operation 310, the predicted set of values stored at the seconddata storage (corresponding to a landing zone) may be updated (i) lessthan the first number of times within the time period and (ii) based onthe predicted set of values stored at the first data storage. As anexample, a version of the predicted set of values stored at the firstdata storage may be periodically transmitted to the second data storage(e.g., every 5 seconds, every minute, or other rate) to replace aversion of the predicted set of values stored at the second datastorage. Each of the periodically-transmitted versions may, forinstance, be more recently updated than the respective replaced versionof the predicted set of values stored at the second data storage.Operation 310 may be performed by an update subsystem that is the sameas or similar to update subsystem 116, in accordance with one or moreembodiments.

In some embodiments, with respect to operation 310, the number of timesthat the predicted set of values stored at the second data storage isupdated within a given time period may be based on cost information,such as information indicating one or more costs associated with writingto the second data storage or other information. As an example, anupdate rate for updating the predicted set of values stored at the firstdata storage may be a first update rate, and an update rate for updatingthe predicted set of values stored at the second data storage may be asecond update rate. The second update rate may be determined (as anupdate rate for updating the predicted set of values stored at thesecond data storage) based on the costs associated with writing to thesecond data storage. Such associated costs may, for instance, comprise amonetary cost for writing to the second data storage, a computerresource cost for writing the second data storage (e.g., bandwidth orother network resource usage amount or other computer resource cost), orother costs.

FIG. 4 shows a flowchart of a method of facilitating load reduction at alanding zone, in accordance with one or more embodiments.

In an operation 402, a request related to a client-initiated query maybe predicted. As an example, the query-related request may comprise aquery submission related to the client-initiated query, an updaterequest related to the client-initiated query, or other request. Asanother example, the query-related request may be predicted based onrequest history information, such as information indicating one or morequeries initiated prior to the client-initiated query, informationindicating a frequency of requests related to queries matching theclient-initiated query, or other information. Operation 402 may beperformed by a request prediction subsystem that is the same as orsimilar to request prediction subsystem 118, in accordance with one ormore embodiments.

In an operation 404, a second landing zone may be assigned to handleresponding to the query-related request, where the second landing zoneis different from a first landing zone at which the query-relatedrequest is subsequently obtained. As an example, the first landing zonemay be a default landing zone, and the second landing zone may be aquery-specific landing zone. The first and second landing zones may eachbe a data storage (e.g., a database or other data storage), a server(e.g., a physical server, a virtual server, etc.), an area (e.g., a webpage, a node, etc.) hosted at the server, or other component via which aclient device obtains data or interacts to have its requests handled.Operation 404 may be performed by a landing zone subsystem that is thesame as or similar to landing zone subsystem 120, in accordance with oneor more embodiments.

In an operation 406, the query-related request may be obtained at thefirst landing zone from a client device. As an example, the clientdevice may transmit the query-related request to the first landing zonebased on the first landing zone being a prior landing zone with whichthe client device interacted, the first landing zone being a defaultlanding zone, or other criteria. Operation 406 may be performed by alanding zone subsystem that is the same as or similar to landing zonesubsystem 120, in accordance with one or more embodiments.

In an operation 408, the client device may be caused to redirect thequery-related request to the second landing zone based on the assignmentto the second landing zone. As an example, responsive to theredirection, the client device may transmit the query-related request,subsequent requests for an update related to the client-initiated query,or other requests to the second landing zone. As a further example,responsive to the redirection, the client device may transmit thequery-related request and the subsequent requests to the second landingzone without first transmitting the subsequent requests to the firstlanding zone. Operation 408 may be performed by a landing zone subsystemthat is the same as or similar to landing zone subsystem 120, inaccordance with one or more embodiments.

In some embodiments, with respect to operation 408, the client devicemay be caused to redirect the query-related request to the secondlanding zone by providing, to the client device, a redirectioninstruction, a reference associated with the second landing zone (e.g.,an identifier or address associated with the second landing zone), orother information. As an example, responsive to being provided theredirection instruction and the second landing zone reference, theclient device may process the redirection instruction and use the secondlanding zone reference to transmit the query-related request and thesubsequent requests to the second landing zone (e.g., withoutfirst/initially transmitting the subsequent requests to the firstlanding zone).

In an operation 410, another request related to another client-initiatedquery (matching the client-initiated query) may be obtained at the firstlanding zone from another client device. As an example, the other clientdevice may transmit the other query-related request to the first landingzone based on the first landing zone being a prior landing zone withwhich the other client device interacted, the first landing zone being adefault landing zone, or other criteria. Operation 410 may be performedby a landing zone subsystem that is the same as or similar to landingzone subsystem 120, in accordance with one or more embodiments.

In an operation 412, the other client device may be caused to redirectthe other query-related request to the second landing zone based on theassignment to the second landing zone and the matching. As an example,responsive to the redirection, the other client device may transmit theother query-related request, other subsequent requests for an updaterelated to the other client-initiated query, or other requests to thesecond landing zone. As a further example, responsive to theredirection, the other client device may transmit the otherquery-related request and the other subsequent requests to the secondlanding zone without first transmitting the other subsequent requests tothe first landing zone. Operation 412 may be performed by a landing zonesubsystem that is the same as or similar to landing zone subsystem 120,in accordance with one or more embodiments.

In some embodiments, with respect to operation 412, the other clientdevice may be caused to redirect the query-related request to the secondlanding zone by providing, to the other client device, a redirectioninstruction, a reference associated with the second landing zone (e.g.,an identifier or address associated with the second landing zone), orother information. As an example, responsive to being provided theredirection instruction and the second landing zone reference, the otherclient device may process the redirection instruction and use the secondlanding zone reference to transmit the other query-related request andthe other subsequent requests to the second landing zone (e.g., withoutfirst/initially transmitting the other subsequent requests to the firstlanding zone).

FIG. 5 shows a flowchart of a method of facilitating queries viarequest-prediction-based temporary storage of query results, inaccordance with one or more embodiments.

In an operation 502, a request for query results may be predicted. As anexample, the request may comprise a query submission (or aclient-initiated query), an update request related to theclient-initiated query, or other request. As another example, thequery-related request may be predicted based on request historyinformation, such as information indicating one or more queriesinitiated prior to the client-initiated query, information indicating afrequency of requests related to queries matching the client-initiatedquery, or other information. Operation 502 may be performed by a requestprediction subsystem that is the same as or similar to requestprediction subsystem 118, in accordance with one or more embodiments.

In an operation 504, a subset of results (of a set of results) may beobtained responsive to the request prediction. As an example, the set ofresults (of which the obtained results is a subset) may comprise resultsthat would have been obtained to respond to the request had the requestbeen obtained from a client device. One or more queries may be performedresponsive to the request prediction to obtain the subset of results.Operation 504 may be performed by a query subsystem that is the same asor similar to query subsystem 112, in accordance with one or moreembodiments.

In an operation 506, the subset of results may be caused to be stored ina temporary data storage without storage of other subsets of the set ofresults in the temporary data storage occurring from the requestprediction. The temporary data storage may comprise a server cache, aweb cache, memory cache, or other temporary data storage. As an example,no performance of queries for the other subsets (of the set of results)may be triggered by the request prediction. As another example, theperformance of queries via which the subset of results is obtained maybe stopped before the other subsets (of the set of results) areobtained. As yet another example, even if the other subsets are obtained(e.g., via one or more queries responsive to the request prediction), adetermination may be made not to store the other subsets (of the set ofresults) in the temporary data storage. Operation 506 may be performedby a temporary storage subsystem that is the same as or similar totemporary storage subsystem 122, in accordance with one or moreembodiments.

In some embodiments, with respect to operations 504 and 506, theobtainment and/or storage of the subset of results may be performedbased on frequency information, cost information, preferenceinformation, or other information. The frequency information maycomprise information indicating a frequency of requests matching therequest or other information. The cost information may compriseinformation indicating costs for storing data in the temporary datastorage, information indicating costs for performing respective queries,or other information. The preference information may compriseinformation indicating one or more preferences related to a manner inwhich to present data or other information. The preferences (related toa manner in which to present data) may comprise a preference for asorting order for presenting data, a preference for an amount of data tobe presented at a given time, a preference for a format in which topresent data, or other preferences. The foregoing obtainment and/orstorage of the subset of results (and/or determination of theinformation on which the obtainment and/or storage are based) may beperformed by a query subsystem or a temporary storage subsystem that arethe same as or similar to query subsystem 112 or temporary storagesubsystem 122, in accordance with one or more embodiments.

In an operation 508, the request may be obtained from the client devicesubsequent to the storage of the subset of results. Operation 508 may beperformed by a query subsystem that is the same as or similar to querysubsystem 112, in accordance with one or more embodiments.

In an operation 510, the subset of results may be obtained from thetemporary data storage based on the request from the client device. Asan example, the temporary data storage may first be checked to determinewhether results relevant to the request exist in the temporary datastorage. As another example, the subset of results may be assigned oneor more attributes associated with the request, and the attributes ofthe request may be compared against a collection of assigned attributesets to determine whether a match exists between the attributes of therequest and one of the assigned attributes sets. If, for instance, theattributes of the request matches an assigned attribute set, theassigned attribute set may be used to obtain the subset of resultsstored in the temporary data storage. Operation 510 may be performed bya query subsystem and/or a temporary storage subsystem that are the sameas or similar to query subsystem 112 and/or temporary storage subsystem122, in accordance with one or more embodiments. As an example, querysubsystem 112 may direct temporary storage subsystem 118 to check forwhether results relevant to the request is stored in the temporary datastorage (e.g., responsive to query subsystem 112 identifying a matchbetween the attributes of the request and one of the assigned attributesets or responsive to one or more other conditions).

In an operation 512, the other subsets of the set of results from one ormore other data sources. As an example, responsive to a determinationthat the other subsets are not stored in the temporary data storage, oneor more queries to the other data sources may be performed to obtain theother subsets (of the set of results) from the other data sources.Operation 512 may be performed by a query subsystem that is the same asor similar to query subsystem 112, in accordance with one or moreembodiments.

In an operation 514, a presentation may be provided at the client devicebased on the subset of results and the other subsets of the set ofresults. As an example, the presentation provided at the client devicemay comprise a representation of the subset of results, a representationof the other subsets of the set of results, or other representation ofresults. Operation 512 may be performed by a presentation subsystem thatis the same as or similar to presentation subsystem 124, in accordancewith one or more embodiments.

FIG. 6 shows a flowchart of a method of facilitating queries viarequest-prediction-based temporary storage of query results, inaccordance with one or more embodiments.

In an operation 602, a request for query results may be predicted. As anexample, the request may comprise a query submission (or aclient-initiated query), an update request related to theclient-initiated query, or other request. As another example, thequery-related request may be predicted based on request historyinformation, such as information indicating one or more queriesinitiated prior to the client-initiated query, information indicating afrequency of requests related to queries matching the client-initiatedquery, or other information. Operation 602 may be performed by a requestprediction subsystem that is the same as or similar to requestprediction subsystem 118, in accordance with one or more embodiments.

In an operation 604, queries for at least some of the query results maybe performed responsive to the request prediction without performance ofone or more other queries (of a set of queries related to the request)occurring from the request prediction. As an example, the set of queriesmay comprise queries that would have been performed to respond to therequest had the request been obtained from a client device, and noperformance of the other queries (of the set of queries) may betriggered by the request prediction. Operation 604 may be performed by aquery subsystem that is the same as or similar to query subsystem 112,in accordance with one or more embodiments.

In an operation 606, results may be obtained based on the performedqueries. As an example, the obtained results may be a subset of a set ofresults that would have been obtained to respond to the request had therequest been obtained from the client device. As another example, noobtainment of other subsets of the set of results may be triggered bythe request prediction. Operation 604 may be performed by a querysubsystem that is the same as or similar to query subsystem 112, inaccordance with one or more embodiments.

In some embodiments, with respect to operations 604 and 606, costinformation may be determined. As an example, the cost information mayindicate costs for performing respective queries (of the set of queriesthat would have been performed to respond to the request had the requestbeen obtained from the client device). The queries to be performed maybe selected from among the set of queries based on the cost information.The results may be obtained based on the performance of the selectedqueries.

In an operation 608, the results (obtained based on the performedqueries) may be caused to be stored in a temporary data storage. In oneuse case, no storage of other subsets of the set of results (that wouldhave been obtained to respond to the request had the request beenobtained from the client device) in the temporary data storage may occurfrom the request prediction. As an example, no obtainment of the othersubsets of the set of results may be triggered by the requestprediction. As another example, even if the other subsets are obtained(e.g., via one or more queries responsive to the request prediction), adetermination may be made not to store the other subsets (of the set ofresults) in the temporary data storage. Operation 608 may be performedby a temporary storage subsystem that is the same as or similar totemporary storage subsystem 122, in accordance with one or moreembodiments.

In an operation 610, the request may be obtained from the client devicesubsequent to the storage of the results. Operation 610 may be performedby a query subsystem that is the same as or similar to query subsystem112, in accordance with one or more embodiments.

In an operation 612, the results may be obtained from the temporary datastorage based on the request from the client device. As an example, thetemporary data storage may first be checked to determine whether resultsrelevant to the request exist in the temporary data storage. As anotherexample, the subset of results may be assigned one or more attributesassociated with the request, and the attributes of the request may becompared against a collection of assigned attribute sets to determinewhether a match exists between the attributes of the request and one ofthe assigned attributes sets. If, for instance, the attributes of therequest matches an assigned attribute set, the assigned attribute setmay be used to obtain the subset of results stored in the temporary datastorage. Operation 612 may be performed by a query temporary subsystemand/or a temporary storage subsystem that are the same as or similar toquery subsystem 112 and/or temporary storage subsystem 122, inaccordance with one or more embodiments.

In an operation 614, a presentation may be provided at the client devicebased on the results (obtained from the temporary data storage). As anexample, the presentation provided at the client device may comprise arepresentation of the results (obtained from the temporary data storage)or other representation of other results. Operation 614 may be performedby a presentation subsystem that is the same as or similar topresentation subsystem 124, in accordance with one or more embodiments.

FIG. 7 shows a flowchart of a method of facilitating queries viarequest-prediction-based temporary storage of query results, inaccordance with one or more embodiments.

In an operation 702, a request for query results may be predicted. As anexample, the request may comprise a query submission (or aclient-initiated query), an update request related to theclient-initiated query, or other request. As another example, thequery-related request may be predicted based on request historyinformation, such as information indicating one or more queriesinitiated prior to the client-initiated query, information indicating afrequency of requests related to queries matching the client-initiatedquery, or other information. Operation 702 may be performed by a requestprediction subsystem that is the same as or similar to requestprediction subsystem 118, in accordance with one or more embodiments.

In an operation 704, responsive to the request prediction, queries fordata related to calculating a set of values may be performed. As anexample, one or more other queries of a set of queries related to therequest may also be performed responsive to the request prediction. Theset of queries may, for instance, comprise queries that would have beenperformed to respond to the request had the request been obtained from aclient device. As another example, no performance of the other queries(of the set of queries) may be triggered by the request prediction.Operation 704 may be performed by a query subsystem that is the same asor similar to query subsystem 112, in accordance with one or moreembodiments.

In some embodiments, with respect to operation 704, the queries to beperformed may be selected from among a set of queries that would havebeen performed to respond to the request had the request been obtainedfrom the client device. As an example, the queries to be performed maybe selected from among the set of queries based on frequencyinformation, cost information, preference information, or otherinformation. The frequency information may comprise informationindicating a frequency of requests matching the request or otherinformation. The cost information may comprise information indicatingcosts for performing respective queries of the set of queries or otherinformation. The preference information may comprise informationindicating one or more preferences related to a manner in which topresent data or other information. The preferences (related to a mannerin which to present data) may comprise a preference for a sorting orderfor presenting data, a preference for an amount of data to be presentedat a given time, a preference for a format in which to present data, orother preferences. The foregoing selection and/or determination of theinformation (on which the selection is based) may be performed by aquery subsystem that is the same as or similar to query subsystem 112,in accordance with one or more embodiments.

In an operation 706, a subset of the related data may be obtained basedon the performed queries. As an example, the related data may be thecomplete set of data for calculating the values of the set of values. Asanother example, the subset of the related data may comprise dataobtained prior to one or more other subsets of the related data beingobtained. Operation 706 may be performed by a query subsystem that isthe same as or similar to query subsystem 112, in accordance with one ormore embodiments.

In an operation 708, the performance of the queries may be caused tostop prior to obtaining one or more other subsets of the related data.In one scenario, the performance of the queries may be caused to stop(prior to obtaining the other subsets of the related data) based on costinformation. As an example, the cost information may compriseinformation indicating costs for performing respective ones of thequeries, information indicating costs for storing data in the temporarydata storage, or other information. Operation 708 may be performed by aquery subsystem that is the same as or similar to query subsystem 112,in accordance with one or more embodiments.

In an operation 710, the set of values may be predicted based on thesubset of the related data. As an example, the predicted set of valuesmay comprise approximations of what the values of the set of valueswould be had a complete set of data corresponding to the set of valuesbeen used to calculate the values of the set of values. As a furtherexample, the related data may be the complete set of data forcalculating the values of the set of values. The subset of the relateddata may comprise data obtained prior to one or more other subsets ofthe related data being obtained. The set of values may, for instance, bepredicted based on the subset of the related data without the othersubsets of the related data. Operation 710 may be performed by a dataprediction subsystem that is the same as or similar to data predictionsubsystem 114, in accordance with one or more embodiments.

In an operation 712, the predicted set of values may be caused to bestored in a temporary data storage. Operation 712 may be performed by adata prediction subsystem that is the same as or similar to dataprediction subsystem 114, in accordance with one or more embodiments.

In an operation 714, the request may be obtained from the client devicesubsequent to the storage of the predicted set of values. Operation 714may be performed by a query subsystem that is the same as or similar toquery subsystem 112, in accordance with one or more embodiments.

In an operation 716, the predicted set of values may be obtained fromthe temporary data storage based on the request from the client device.As an example, the temporary data storage may first be checked todetermine whether results relevant to the request exist in the temporarydata storage. As another example, the predicted set of values may beassigned one or more attributes associated with the request, and theattributes of the request may be compared against a collection ofassigned attribute sets to determine whether a match exists between theattributes of the request and one of the assigned attributes sets. If,for instance, the attributes of the request matches an assignedattribute set, the assigned attribute set may be used to obtain thepredicted set of values stored in the temporary data storage. Operation716 may be performed by a query temporary subsystem and/or a temporarystorage subsystem that are the same as or similar to query subsystem 112and/or temporary storage subsystem 122, in accordance with one or moreembodiments.

In an operation 718, the predicted set of values may be provided forpresentation at the client device. As an example, the presentation atthe client device may comprise a representation of the predicted set ofvalues. Operation 718 may be performed by a presentation subsystem thatis the same as or similar to presentation subsystem 124, in accordancewith one or more embodiments.

In some embodiments, the various computers and subsystems illustrated inFIG. 1 may include one or more computing devices that are programmed toperform the functions described herein. The computing devices mayinclude one or more electronic storages (e.g., prediction andvisualization database(s) 132 or other electric storages), one or morephysical processors programmed with one or more computer programinstructions, and/or other components. The computing devices may includecommunication lines or ports to enable the exchange of information witha network (e.g., network 150) or other computing platforms via wired orwireless techniques (e.g., Ethernet, fiber optics, coaxial cable, WiFi,Bluetooth, near field communication, or other technologies). Thecomputing devices may include a plurality of hardware, software, and/orfirmware components operating together. For example, the computingdevices may be implemented by a cloud of computing platforms operatingtogether as the computing devices.

The electronic storages may include non-transitory storage media thatelectronically stores information. The electronic storage media of theelectronic storages may include one or both of (i) system storage thatis provided integrally (e.g., substantially non-removable) with serversor client devices or (ii) removable storage that is removablyconnectable to the servers or client devices via, for example, a port(e.g., a USB port, a firewire port, etc.) or a drive (e.g., a diskdrive, etc.). The electronic storages may include one or more ofoptically readable storage media (e.g., optical disks, etc.),magnetically readable storage media (e.g., magnetic tape, magnetic harddrive, floppy drive, etc.), electrical charge-based storage media (e.g.,EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.),and/or other electronically readable storage media. The electronicstorages may include one or more virtual storage resources (e.g., cloudstorage, a virtual private network, and/or other virtual storageresources). The electronic storage may store software algorithms,information determined by the processors, information obtained fromservers, information obtained from client devices, or other informationthat enables the functionality as described herein.

The processors may be programmed to provide information processingcapabilities in the computing devices. As such, the processors mayinclude one or more of a digital processor, an analog processor, adigital circuit designed to process information, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information. In someembodiments, the processors may include a plurality of processing units.These processing units may be physically located within the same device,or the processors may represent processing functionality of a pluralityof devices operating in coordination. The processors may be programmedto execute computer program instructions to perform functions describedherein of subsystems 112-124 or other subsystems. The processors may beprogrammed to execute computer program instructions by software;hardware; firmware; some combination of software, hardware, or firmware;and/or other mechanisms for configuring processing capabilities on theprocessors.

It should be appreciated that the description of the functionalityprovided by the different subsystems 112-124 described herein is forillustrative purposes, and is not intended to be limiting, as any ofsubsystems 112-124 may provide more or less functionality than isdescribed. For example, one or more of subsystems 112-124 may beeliminated, and some or all of its functionality may be provided byother ones of subsystems 112-124. As another example, additionalsubsystems may be programmed to perform some or all of the functionalityattributed herein to one of subsystems 112-124.

Although the present invention has been described in detail for thepurpose of illustration based on what is currently considered to be themost practical and preferred embodiments, it is to be understood thatsuch detail is solely for that purpose and that the invention is notlimited to the disclosed embodiments, but, on the contrary, is intendedto cover modifications and equivalent arrangements that are within thescope of the appended claims. For example, it is to be understood thatthe present invention contemplates that, to the extent possible, one ormore features of any embodiment can be combined with one or morefeatures of any other embodiment.

What is claimed is:
 1. A method of facilitating queries viarequest-prediction-based temporary storage of query results, the methodbeing implemented by a computer system that comprises one or moreprocessors executing computer program instructions that, when executed,perform the method, the method comprising: predicting a request forquery results; obtaining a subset of results responsive to the requestprediction, the subset of results being a portion of a set of resultsthat would have been obtained to respond to the request had the requestbeen obtained from a client device; causing the subset of results to bestored in a temporary data storage, wherein no storage of other subsetsof the set of results in the temporary data storage occurs from therequest prediction; obtaining the request from the client devicesubsequent to the storage of the subset of results; obtaining, based onthe request from the client device, the subset of results from thetemporary data storage and the other subsets of the set of results viaone or more other data sources; and providing a presentation at theclient device based on the subset of results and the other subsets ofthe set of results.
 2. The method of claim 1, further comprising:performing queries for at least some of the query results responsive tothe request prediction, the performed queries being a portion of a setof queries that would have been performed to respond to the request hadthe request been obtained from the client device, wherein obtaining thesubset of results comprises obtaining the subset of results based on theperformed queries.
 3. The method of claim 2, wherein no performance ofone or more other queries of the set of queries occurs from the requestprediction.
 4. The method of claim 1, wherein no obtainment of the othersubsets of the set of results occurs from the request prediction.
 5. Themethod of claim 1, wherein the subset of results comprises a subset ofdata related to calculating a set of values, and the other subsets ofthe set of results comprise other subsets of the related data, themethod further comprising: predicting the set of values at a first timebased on the subset of the related data; and updating the predicted setof values at a second time based on the other subsets of the relateddata, wherein providing the presentation at the client device comprises:providing a presentation of the predicted set of values that waspredicted at the first time; and updating the presentation of thepredicted set of values with a presentation of the updated predicted setof values that was updated at the second time.
 6. The method of claim 1,wherein the subset of results comprises a subset of values of a set ofvalues, and the other subsets of the set of results comprise othersubsets of values of the set of values.
 7. The method of claim 1,further comprising: determining frequency information indicating afrequency of requests matching the request, wherein the subset ofresults are stored in the temporary data storage based on the frequencyinformation, and wherein, based on the frequency information, no storageof the other subsets of the set of results in the temporary data storageoccurs from the request prediction.
 8. The method of claim 1, furthercomprising: determining frequency information indicating a frequency ofrequests matching the request, wherein obtaining the subset of resultscomprises obtaining the subset of results based on the frequencyinformation, and wherein, based on the frequency information, noobtainment of the other subsets of the set of results occurs from therequest prediction.
 9. The method of claim 1, further comprising:determining cost information indicating a cost for storing data in thetemporary data storage, wherein the subset of results are stored in thetemporary data storage based on the cost information, and wherein, basedon the cost information, no storage of the other subsets of the set ofresults in the temporary data storage occurs from the requestprediction.
 10. The method of claim 1, further comprising: determiningcost information indicating a cost for storing data in the temporarydata storage, wherein obtaining the subset of results comprisesobtaining the subset of results based on the cost information, andwherein, based on the cost information, no obtainment of the othersubsets of the set of results occurs from the request prediction. 11.The method of claim 1, further comprising: determining preferenceinformation indicating one or more preferences related to a manner inwhich to present data, the one or more preferences comprising apreference for a sorting order for presenting data, a preference for anamount of data to be presented at a given time, or a preference for aformat in which to present data, wherein the subset of results arestored in the temporary data storage based on the preferenceinformation, and wherein, based on the preference information, nostorage of the other subsets of the set of results in the temporary datastorage occurs from the request prediction.
 12. The method of claim 1,further comprising: determining preference information indicating one ormore preferences related to a manner in which to present data, the oneor more preferences comprising a preference for a sorting order forpresenting data, a preference for an amount of data to be presented at agiven time, or a preference for a format in which to present data,wherein obtaining the subset of results comprises obtaining the subsetof results based on the preference information, and wherein, based onthe preference information, no obtainment of the other subsets of theset of results occurs from the request prediction.
 13. The method ofclaim 1, further comprising: predicting another request for queryresults; determining frequency information indicating a frequency ofrequests matching the other request; and determining, based on thefrequency information, not to obtain any results related to the otherrequest for storage in the temporary data storage.
 14. The method ofclaim 1, further comprising: predicting another request for queryresults; determining cost information indicating a cost for storing datain the temporary data storage; and determining, based on the costinformation, not to obtain any results related to the other request forstorage in the temporary data storage.
 15. A system for facilitatingqueries via request-prediction-based temporary storage of query results,the system comprising: a computer system comprising one or moreprocessors executing computer program instructions that, when executed,cause the computer system to: predict a request for query results;obtain a subset of results responsive to the request prediction, thesubset of results being a portion of a set of results that would havebeen obtained to respond to the request had the request been obtainedfrom a client device; cause the subset of results to be stored in atemporary data storage, wherein no storage of other subsets of the setof results in the temporary data storage occurs from the requestprediction; obtain the request from the client device subsequent to thestorage of the subset of results; obtain, based on the request from theclient device, the subset of results from the temporary data storage andthe other subsets of the set of results via one or more other datasources; and provide a presentation at the client device based on thesubset of results and the other subsets of the set of results.
 16. Thesystem of claim 15, wherein the computer system is caused to: performqueries for at least some of the query results responsive to the requestprediction, the performed queries being a portion of a set of queriesthat would have been performed to respond to the request had the requestbeen obtained from the client device, wherein obtaining the subset ofresults comprises obtaining the subset of results based on the performedqueries.
 17. The system of claim 16, wherein no performance of one ormore other queries of the set of queries occurs from the requestprediction.
 18. The system of claim 15, wherein no obtainment of theother subsets of the set of results occurs from the request prediction.19. The system of claim 15, wherein the subset of results comprises asubset of data related to calculating a set of values, and the othersubsets of the set of results comprise other subsets of the relateddata, and wherein the computer system is caused to: predict the set ofvalues at a first time based on the subset of the related data; andupdate the predicted set of values at a second time based on the othersubsets of the related data, wherein providing the presentation at theclient device comprises: providing a presentation of the predicted setof values that was predicted at the first time; and updating thepresentation of the predicted set of values with a presentation of theupdated predicted set of values that was updated at the second time. 20.The system of claim 15, wherein the subset of results comprises a subsetof values of a set of values, and the other subsets of the set ofresults comprise other subsets of values of the set of values.